package org.netty.hander;

import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelOutboundHandlerAdapter;
import io.netty.channel.ChannelPromise;
import io.netty.util.ReferenceCountUtil;

/**
 * 
 * Description:
 * @author zpp
 * @date   2018年5月9日
 */
public class DiscardOutboundHandler extends ChannelOutboundHandlerAdapter {
	
	/**
	 * 若ChannelPromise没有被通知可能会导致其中一个ChannelFutureListener不被通知去处理一个消息
	 */
	@Override
	public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception {
		//释放消息并通知ChannelPromise
		ReferenceCountUtil.release(msg);
		promise.setSuccess();
	}
}